package com.mcp.converter.shared.response.sql;

import com.mcp.converter.shared.enums.SQLType;
import lombok.Data;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * SQL解析结果
 *
 * @author zengxiong
 */
@Data
public class SQLParseResult {

    /**
     * 原始SQL语句
     */
    private String originalSQL;

    /**
     * SQL语句类型
     */
    private SQLType sqlType;

    /**
     * SQL语句元素列表
     */
    private List<SQLElement> elements;

    /**
     * 属性键值对
     */
    private Map<String, Object> attributes;

    public SQLParseResult() {
        this.elements = new ArrayList<>();
        this.attributes = new HashMap<>();
    }

    /**
     * 添加属性
     * @param key 属性键
     * @param value 属性值
     */
    public void addAttribute(String key, Object value) {
        this.attributes.put(key, value);
    }

    /**
     * 获取属性
     * @param key 属性键
     * @return 属性值
     */
    public Object getAttribute(String key) {
        return this.attributes.get(key);
    }

}
